#pragma once
#include<semaphore.h>
namespace SemModule{
    int defaultsemval=10;
    class Sem{
public:
Sem(int value=defaultsemval)
:_init_value(value)
{
    sem_init(&_sem,0,_init_value);
}
void P()
{
 sem_wait(&_sem);
}
void V(){
    sem_post(&_sem);
}
~Sem(){
    sem_destroy(&_sem);
}
private:
sem_t _sem;
int _init_value;
    };
}